#ifndef _SIP_DEVICE_MANAGER_H_
#define _SIP_DEVICE_MANAGER_H_

#include <map>
#include <vector>
#include "extension-base-class.h"

struct st_device_catalog_item
{
    std::string mstr_device_id;
    std::string mstr_device_name;
    std::string mstr_device_manufacturer;
    std::string mstr_device_model;
    std::string mstr_device_ownder;
    std::string mstr_device_civilcode;
    std::string mstr_device_parentid;
};

struct st_device_info
{
    std::string mstr_device_id;//34020000001320000001
    std::string mstr_device_ip;
    time_t mt_last_heartbeat;
    //std::string str_sip_uri;//sip:34020000001320000001@192.168.1.100
};


class sip_device_mgr
{
public:
    sip_device_mgr();
    ~sip_device_mgr();

private:
    std::mutex mo_dev_catalog_mutex;
    std::map<std::string, std::vector<st_device_catalog_item> > mo_device_catalog_info;
};

typedef singleton_locker_factory<sip_device_mgr> singleton_locker_sip_dev_mgr_handler;

#endif

